op {
  graph_op_name: "ParallelFilterDataset"
  visibility: HIDDEN
  in_arg {
    name: "other_arguments"
    description: <<END
A list of tensors, typically values that were captured when
building a closure for `predicate`.
END
  }
  in_arg {
    name: "num_parallel_calls"
    description: <<END
The number of concurrent invocations of `predicate` that process
elements from `input_dataset` in parallel.
END
  }
  attr {
    name: "predicate"
    description: <<END
A function returning a scalar boolean.
END
  }
  attr {
    name: "deterministic"
    description: <<END
A string indicating the op-level determinism to use. Deterministic controls
whether the interleave is allowed to return elements out of order if the next
element to be returned isn't available, but a later element is. Options are
"true", "false", and "default". "default" indicates that determinism should be
decided by the `experimental_deterministic` parameter of `tf.data.Options`.
END
  }
  summary: "Creates a dataset containing elements of `input_dataset` matching `predicate`."
  description: <<END
The `predicate` function must return a scalar boolean and accept the
following arguments:

* One tensor for each component of an element of `input_dataset`.
* One tensor for each value in `other_arguments`.

Unlike a "FilterDataset", which applies `predicate` sequentially, this dataset
invokes up to `num_parallel_calls` copies of `predicate` in parallel.
  
END
}
